home *** CD-ROM | disk | FTP | other *** search
/ Programming a Multiplayer FPS in DirectX / Programming a Multiplayer FPS in DirectX (Companion CD).iso / DirectX / dxsdk_oct2004.exe / dxsdk.exe / Samples / C++ / Direct3D / EffectEdit / RenderView.h < prev    next >
Encoding:
C/C++ Source or Header  |  2004-09-27  |  6.4 KB  |  168 lines

  1. // RenderView.h : interface of the CRenderView class
  2. //
  3. /////////////////////////////////////////////////////////////////////////////
  4.  
  5. #if !defined(AFX_RENDERVIEW_H__204F6922_00F7_44FD_8F0D_61EC78118D87__INCLUDED_)
  6. #define AFX_RENDERVIEW_H__204F6922_00F7_44FD_8F0D_61EC78118D87__INCLUDED_
  7.  
  8. #if _MSC_VER > 1000
  9. #pragma once
  10. #endif // _MSC_VER > 1000
  11.  
  12.  
  13. class CRenderView : public CFormView
  14. {
  15. protected: // create from serialization only
  16.     CRenderView();
  17.     DECLARE_DYNCREATE(CRenderView)
  18.  
  19. public:
  20.     //{{AFX_DATA(CRenderView)
  21.     enum{ IDD = IDD_RENDER_FORM };
  22.         // NOTE: the ClassWizard will add data members here
  23.     //}}AFX_DATA
  24.  
  25. // Attributes
  26. public:
  27.     CEffectDoc* GetDocument();
  28.  
  29. // Operations
  30. public:
  31.     void SetTechnique( int iTech, CString strTechName );
  32.     void SetPass( int iPass, CString strPassName );
  33.     void GetPassNameList( int iTech, CStringList& passNameList );
  34.     void ResetCamera();
  35.  
  36. // Overrides
  37.     // ClassWizard generated virtual function overrides
  38.     //{{AFX_VIRTUAL(CRenderView)
  39.     public:
  40.     virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  41.     protected:
  42.     virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  43.     virtual void OnInitialUpdate(); // called first time after construct
  44.     virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
  45.     //}}AFX_VIRTUAL
  46.  
  47. // Implementation
  48. public:
  49.     HRESULT CompileEffect(CString strEffect, BOOL bUseShaderOptimizations, BOOL bFromFile, CString& strErrors, CStringList& techniqueNameList, int* piTechnique, BOOL* pbTryLater);
  50.     HRESULT ParseParameters(CString &strErrors);
  51.     HRESULT LoadMesh(CString &strErrors);
  52.     void    UnloadMesh();
  53.     void    ShowStats( BOOL bShowStats ) { m_bShowStats = bShowStats; }
  54.     void    SetWireframe( BOOL bWireframe ) { m_bWireframe = bWireframe; }
  55.     void    SetNoTextures( BOOL bNoTextures ) { m_bNoTextures = bNoTextures; }
  56.     void    SetSelectedPassOnly( BOOL bSelectedPassOnly ) { m_bSelectedPassOnly = bSelectedPassOnly; }
  57.     void    SetUpToSelectedPassOnly( BOOL bUpToSelectedPassOnly ) { m_bUpToSelectedPassOnly = bUpToSelectedPassOnly; }
  58.     BOOL    GetShowStats() { return m_bShowStats; }
  59.     void    RequestUIReset() { m_bUINeedsReset = TRUE; }
  60.     virtual ~CRenderView();
  61. #ifdef _DEBUG
  62.     virtual void AssertValid() const;
  63.     virtual void Dump(CDumpContext& dc) const;
  64. #endif
  65.     void    OnToggleFullscreen(void) { DXUTToggleFullScreen(); }
  66.     void    OnFrameMove( IDirect3DDevice9* pd3dDevice, double fTime, float fElapsedTime );
  67.     void    OnFrameRender( IDirect3DDevice9* pd3dDevice, double fTime, float fElapsedTime );
  68.     HRESULT OnCreateDevice( IDirect3DDevice9* pd3dDevice, const D3DSURFACE_DESC* pBackBufferSurfaceDesc );
  69.     HRESULT OnResetDevice( IDirect3DDevice9* pd3dDevice, const D3DSURFACE_DESC* pBackBufferSurfaceDesc );
  70.     void    OnLostDevice();
  71.     void    OnDestroyDevice();
  72.  
  73.     // DXUT Callbacks
  74.     static  void    CALLBACK OnFrameMoveCB( IDirect3DDevice9* pd3dDevice, double fTime, float fElapsedTime );
  75.     static  void    CALLBACK OnFrameRenderCB( IDirect3DDevice9* pd3dDevice, double fTime, float fElapsedTime );
  76.     static  HRESULT CALLBACK OnCreateDeviceCB( IDirect3DDevice9* pd3dDevice, const D3DSURFACE_DESC* pBackBufferSurfaceDesc );
  77.     static  HRESULT CALLBACK OnResetDeviceCB( IDirect3DDevice9* pd3dDevice, const D3DSURFACE_DESC* pBackBufferSurfaceDesc );
  78.     static  void    CALLBACK OnLostDeviceCB();
  79.     static  void    CALLBACK OnDestroyDeviceCB();
  80.  
  81.     void ChangeDevice();
  82.     HRESULT EE_FindMediaFileCb( TCHAR* szDestPath, int cbDest, TCHAR* strFilename );
  83.     HRESULT EE_FindMediaFileCch( TCHAR* szDestPath, int cchDest, TCHAR* strFilename );
  84.  
  85. protected:
  86.     BOOL m_bShowStats;
  87.     BOOL m_bWireframe;
  88.     BOOL m_bNoTextures;
  89.     BOOL m_bSelectedPassOnly;
  90.     BOOL m_bUpToSelectedPassOnly;
  91.     BOOL m_bUINeedsReset;
  92.     ID3DXFont* m_pFont;
  93.     CD3DArcBall m_ArcBallMesh;      // mouse rotation utility
  94.     CD3DArcBall m_ArcBallView;      // mouse rotation utility
  95.     RECT m_rcWindowClient;
  96.  
  97.     D3DXMATRIX m_matWorld;
  98.     D3DXMATRIX m_matView;
  99.     D3DXMATRIX m_matProj;
  100.  
  101.     // Effect
  102.     ID3DXEffect* m_pEffect;
  103.     D3DXEFFECT_DESC m_EffectDesc;
  104.     ID3DXSprite* m_pTextSprite;   // Sprite for batching draw text calls
  105.     int m_iTechnique;
  106.     int m_iPass;
  107.     BOOL m_bTechniqueValid;
  108.     BOOL m_bTechniqueValidValid;
  109.     D3DXHANDLE m_MatWorldEffectHandle;
  110.     D3DXHANDLE m_MatViewEffectHandle;
  111.     D3DXHANDLE m_MatProjEffectHandle;
  112.     D3DXHANDLE m_MatWorldViewEffectHandle;
  113.     D3DXHANDLE m_MatViewProjEffectHandle;
  114.     D3DXHANDLE m_MatWorldViewProjEffectHandle;
  115.     D3DXHANDLE m_VecCameraPosEffectHandle;
  116.     D3DXHANDLE m_MaterialAmbientEffectHandle;
  117.     D3DXHANDLE m_MaterialDiffuseEffectHandle;
  118.     D3DXHANDLE m_MaterialSpecularEffectHandle;
  119.     D3DXHANDLE m_MaterialSpecularPowerEffectHandle;
  120.     D3DXHANDLE m_TimeEffectHandle;
  121.     D3DXHANDLE m_MeshRadiusEffectHandle;
  122.  
  123.     LPD3DXMESH m_pMeshSphere;
  124.  
  125.     CUIElements m_UIElements;
  126.  
  127.     // XFile
  128.     char m_strMesh[MAX_PATH];
  129.     LPD3DXMESH          m_pMesh;
  130.     D3DXMATERIAL*       m_pMaterials;
  131.     LPDIRECT3DTEXTURE9* m_ppTextures;
  132.     DWORD               m_dwNumMaterials;
  133.     LPD3DXBUFFER        m_pbufMaterials;    // contains both the materials data and the filename strings
  134.     D3DXVECTOR3         m_vObjectCenter;    // Center of bounding sphere of object
  135.     FLOAT               m_fObjectRadius;    // Radius of bounding sphere of object
  136.  
  137.     // Scene background
  138.     char m_strBackgroundTexture[MAX_PATH];
  139.     LPDIRECT3DTEXTURE9 m_pBackgroundTexture;    
  140.     LPDIRECT3DCUBETEXTURE9 m_pEnvironmentTexture;
  141.     DWORD m_dwBackgroundColor;
  142.     LPDIRECT3DVERTEXBUFFER9 m_pVBBackground;
  143.  
  144.  
  145. // Generated message map functions
  146. protected:
  147.     HWND m_hwndRenderFullScreen;
  148.     HWND m_hwndRenderWindow;
  149.     //{{AFX_MSG(CRenderView)
  150.     afx_msg void OnDestroy();
  151.     afx_msg void OnSize(UINT nType, int cx, int cy);
  152.     afx_msg void OnRender();
  153.     //}}AFX_MSG
  154.     DECLARE_MESSAGE_MAP()
  155. };
  156.  
  157. #ifndef _DEBUG  // debug version in RenderView.cpp
  158. inline CEffectDoc* CRenderView::GetDocument()
  159.    { return (CEffectDoc*)m_pDocument; }
  160. #endif
  161.  
  162. /////////////////////////////////////////////////////////////////////////////
  163.  
  164. //{{AFX_INSERT_LOCATION}}
  165. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  166.  
  167. #endif // !defined(AFX_RENDERVIEW_H__204F6922_00F7_44FD_8F0D_61EC78118D87__INCLUDED_)
  168.